/*-------------------------------------------------------------------------
 *
 * strnlen.c
 *		strnlen()的回退实现。
 *
 *
 * Portions Copyright (c) 1996-2022, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * IDENTIFICATION
 *	  src/port/strnlen.c
 *
 *-------------------------------------------------------------------------
 */

#include "c.h"

/*
 * posix的strnlen的实现，对于那些不可用的系统。
 *
 * 返回指向str的字符串中在null字节之前的字符数，除非在maxlen之前没有null字节。在后一种情况下返回maxlen。
 */
size_t strnlen(const char *fc_str, size_t fc_maxlen)
{
	const char *fc_p = fc_str;

	while (fc_maxlen-- > 0 && *fc_p)
		fc_p++;
	return fc_p - fc_str;
}
